namespace ParserGenerator
{
    internal static class SR
    {
        public const string IndexMustBeNonNegative = "Index must be non-negative.";
        public const string LineMustBeNonNegative = "Line must be non-negative.";
        public const string OffsetMustBeNonNegative = "Offset must be non-negative.";
        public const string RowMustBeNonNegative = "Row must be non-negative.";
        public const string ColumnMustBeNonNegative = "Column must be non-negative.";
        public const string BeginMustBeNonNegative = "Begin must be non-negative.";
        public const string EndMustBeNonNegative = "End must be non-negative.";
        public const string NumberMustBeNonNegative = "Number must be non-negative.";
        public const string ValueMustBeNonNegative = "Value must be non-negative.";
        public const string IndentMustBeNonNegative = "Indent must be non-negative.";
        public const string LoadFactorMustBeNonNegative = "Load factor must be non-negative.";
        public const string ImportLevelMustBeNonNegative = "Import level must be non-negative.";
        public const string CapacityMustBeNonNegative = "Capacity must be non-negative.";
        public const string SizeMustBeNonNegative = "Size must be non-negative.";
        public const string CountMustBeNonNegative = "Count must be non-negative.";
        public const string LengthMustBeNonNegative = "Length must be non-negative.";
        public const string RowsMustBeNonNegative = "Rows must be non-negative.";
        public const string ColumnsMustBeNonNegative = "Columns must be non-negative.";
        public const string NodeCountMustBeNonNegative = "Node count must be non-nagative.";
        public const string NodeNumberMustBeNonNegative = "Node number must be non-nagative.";
        public const string TerminalNumberMustBeNonNegative = "Terminal number must be non-nagative.";
        public const string NonterminalNumberMustBeNonNegative = "Nonterminal number must be non-nagative.";
        public const string ProductionNumberMustBeNonNegative = "Production number must be non-nagative.";
        public const string ProductionLengthMustBeNonNegative = "Production length must be non-nagative.";
        public const string ProductionPositionMustBeNonNegative = "Production position must be non-nagative.";
        public const string ItemNumberMustBeNonNegative = "Item number must be non-nagative.";
        public const string ItemActionMustBeNonNegative = "Item action must be non-nagative.";
        public const string OperatorPrecedenceMustBeNonNegative = "Operator precedence must be non-nagative.";
        public const string StateNumberMustBeNonNegative = "State number must be non-negative.";
        public const string SymbolNumberMustBeNonNegative = "Symbol number must be non-negative.";
        public const string InadequacyNodeNumberMustBeNonNegative = "Inadequacy node number must be non-negative.";
        public const string AnnotationNodeNumberMustBeNonNegative = "Annotation node number must be non-negative.";
        public const string LexicalSymbolIndexMustBeNonNegative = "Lexical symbol index must be non-negative.";
        public const string SymbolCountMustBeNonNegative = "Symbol count must be non-negative.";
        public const string GotoNumberMustBeNonNegative = "Goto number must be non-negative.";
        public const string ScannerAutomatonItemNumberMustBeNonNegative = "Scanner automaton item number must be non-negative.";
        public const string NonNegativeInt32LiteralExpected = "Non-negative int32 literal expected.";

        public const string ColumnsMustBePositive = "Columns must be positive.";
        public const string TabSizeMustBePositive = "TabSize must be positive.";
        public const string SlotNumberMustBePositive = "Slot number must be positive.";
        public const string LeftMarginMustBePositive = "Left margin must be positive.";
        public const string TopMarginMustBePositive = "Top margin must be positive.";
        public const string RightMarginMustBePositive = "Right margin must be positive.";
        public const string BottomMarginMustBePositive = "Bottom margin must be positive.";
        public const string CellWidthMustBePositive = "Cell width must be positive.";
        public const string CellHeightMustBePositive = "Cell height must be positive.";
        public const string RadiusMustBePositive = "Radius must be positive.";
        public const string SizeMustBePositive = "Size must be positive.";

        public const string IndexOutOfRange = "Index is out of range.";
        public const string LineOutOfRange = "Line is out of range.";
        public const string BeginOutOfRange = "Begin is out of range.";
        public const string EndOutOfRange = "End is out of range.";
        public const string RowOutOfRange = "Row is out of range.";
        public const string ColumnOutOfRange = "Column is out of range.";
        public const string LocationOutOfRange = "Location is out of range.";
        public const string NodeNumberOutOfRange = "Node number is out of range.";
        public const string SourceNodeNumberOutOfRange = "Source node number is out of range.";
        public const string TargetNodeNumberOutOfRange = "Target node number is out of range.";

        public const string ArgumentMustBePositive = "Argument '{0}' must be positive.";
        public const string ArgumentMustBeNonNegative = "Argument '{0}' must be non-negative.";

        public const string CharClassNumberMustBeNonNegative = "Character class number must be non-negative.";
        public const string MinCountMaxCountBothOmitted = "Min count and max count are both omitted.";
        public const string MinCountMustBeNonNegative = "Min count must be non-negative.";
        public const string MaxCountMustBePositive = "Max count must be positive.";
        public const string MinCountMaxCountNotRange = "Min count and max count don't form valid range.";
        public const string BeginEndNotRange = "Begin and end don't form valid range.";
        public const string FirstLastNotRange = "First and last don't form valid range.";

        public const string ArgumentMustBeCompactTableCell = "Argument must be compact table cell.";
        public const string ArgumentMustBeCompactTableRow = "Argument must be compact table row.";
        public const string ArgumentMustBeCharInterval = "Argument must be character interval.";
        public const string ArgumentMustBeCharClass = "Argument must be character class.";
        public const string ArgumentMustBeCharpMapLink = "Argument must be character map link.";
        public const string ArgumentMustBeIdentifier = "Argument must be identifier.";
        public const string ArgumentMustBeIntegerLiteral = "Argument must be integer literal.";
        public const string ArgumentMustBeFloatLiteral = "Argument must be float literal.";
        public const string ArgumentMustBeComplexLiteral = "Argument must be complex literal.";
        public const string ArgumentMustBeStringLiteral = "Argument must be string literal.";
        public const string ArgumentMustBeByteStringLiteral = "Argument must be byte string literal.";
        public const string ArgumentMustBeCharLiteral = "Argument must be character literal.";
        public const string ArgumentMustBeBooleanLiteral = "Argument must be boolean literal.";
        public const string ArgumentMustBeNullLiteral = "Argument must be null literal.";
        public const string ArgumentMustBeTupleLiteral = "Argument must be tuple literal.";
        public const string ArgumentMustBeListLiteral = "Argument must be list literal.";

        public const string ObjectsAreNotComparable = "Objects are not comparable.";
        public const string NameOfEnumValueNotDefined = "Name of enumeration value is not defined.";
        public const string TypeDefined = "Type '{0}' has been defined.";
        public const string SyntaxTreeNodeTypeDefined = "Syntax tree node type {0} has been defined.";
        public const string InvalidPositiveTypeOperand = "'+' can only be applied to sequence and signed numeric type.";
        public const string InvalidKleeneTypeOperand = "'*' can only be applied to signed numeric type.";

        public const string InvalidGrammarProductionNumber = "Invalid grammar production number.";
        public const string InvalidTokenizerActionNumber = "Invalid tokenizer action number.";
        public const string InvalidUnicodeCodepoint = "Invalid Unicode codepint.";
        public const string CharMustBeInBMPRange = "Character must be in range '\\0' ... '\\uffff'.";
        public const string CharMustBeInRange = "Character must be in range {0}.";
        public const string DelimiterMustBeQuote = "Delimiter must be '\\'', '\"' or '`'.";
        public const string DelimiterMustBeSingleOrDoubleQuote = "Delimiter must be '\\'' or '\"'.";
        public const string NonAsciiByteMustBeXO = "Non-ascii byte must be expressed as '\\xhh' or '\\ooo'.";
        public const string EscapedCharNotAscii = "The escaped character is not ascii.";
        public const string CharNotByte = "The character is not a byte.";
        public const string StringLiteralNotSingle = "String literal does not contain exactly one character.";
        public const string ByteStringLiteralNotSingle = "Byte string literal does not contain exactly one byte.";
        public const string TupleLiteralNotSingle = "Tuple literal does not contain exactly one element.";
        public const string ListLiteralNotSingle = "List literal does not contain exactly one element.";
        public const string SetLiteralNotSingle = "Set literal does not contain exactly one element.";
        public const string MapLiteralNotSingle = "Map literal does not contain exactly one element.";
        public const string IdentifierCaseStyleUnknownNoWords = "Can not get words of identifier {0} because its case style is unknown.";
        public const string IdentifierNotDottedNameNoItems = "Can not get items of identifier {0} because it's not a dotted name.";
        public const string IdentifierCaseStyleUnknownNoUpperCase = "Can not get upper case version of identifier {0} because its case style is unknown.";
        public const string IdentifierCaseStyleUnknownNoLowerCase = "Can not get lower case version of identifier {0} because its case style is unknown.";
        public const string IdentifierNotLowerSnakeCase = "Identifier {0} is not in lower snake case.";
        public const string IdentifierNotUpperSnakeCase = "Identifier {0} is not in upper snake case.";
        public const string IdentifierNotLowerDashCase = "Identifier {0} is not in lower dash case.";
        public const string IdentifierNotUpperDashCase = "Identifier {0} is not in upper dash case.";
        public const string IdentifierNotLowerCamelCase = "Identifier {0} is not in lower camel case.";
        public const string IdentifierNotUpperCamelCase = "Identifier {0} is not in upper camel case.";
        public const string IdentifierNotDottedName = "Identifier {0} is not a dotted name.";
        public const string IdentifierNotSnakeCase = "Identifier {0} is not in snake case.";
        public const string IdentifierNotDashCase = "Identifier {0} is not in dash case.";
        public const string IdentifierNotCamelCase = "Identifier {0} is not in camel case.";
        public const string IdentifierNotLowerCase = "Identifier {0} is not in lower case.";
        public const string IdentifierNotUpperCase = "Identifier {0} is not in upper case.";

        public const string BeginEndDiffDoc = "Begin and end come from different documents.";
        public const string SourceOfDocNotAvailable = "Source of document \"{0}\" is not available.";
        public const string LocationComesFromDiffDoc = "Location comes from different document.";

        public const string CharNotFoundInMap = "Character is not found in the map.";
        public const string UniversalMismatch = "Character class universals mismatch.";
        public const string ValueOfCellSpecified = "Value of cell ({0}, {1}) has been specified.";
        public const string ConsoleNotInteractive = "Console is not interactive.";
        public const string DottedNameEmpty = "The dotted name is empty.";
        public const string ReaderStackEmpty = "Reader stack is empty.";
        public const string JsonValueNotDictionary = "The JSON value is not a dictionary.";
        public const string DuplicateKeyInJsonDictionary = "Duplicate key {0} detected in JSON dictionary.";

        public const string CapacityTooSmall = "Capacity must be greater than or equal to the current size.";
        public const string MapAddingDuplicate = "An item with the same key has already been added.";
        public const string EnumFailedVersion = "Collection was modified; enumeration operation may not execute.";
        public const string EnumOpCantHappen = "Enumeration has either not started or has already finished.";
        public const string TargetArrayTooSmall = "The target array is too small.";
        public const string RankMultiDimNotSupported = "Only single dimensional arrays are supported for the requested action.";
        public const string NonZeroLowerBound = "The lower bound of target array must be zero.";
        public const string InvalidIndexAndCount = "Invalid index and count.";
        public const string WrongCollectionElementType = "The value {0} is not of type {1} and cannot be used in this generic collection.";
        public const string InvalidArrayElementType = "Target array type is not compatible with the type of items in the collection.";
        public const string StackEmpty = "Stack is empty.";
        public const string QueueEmpty = "Queue is empty.";
        public const string PriorityQueueEmpty = "Priority queue is empty.";
        public const string SymbolStackEmpty = "Symbol stack is empty.";
        public const string KeyValueArrayLengthsMismatch = "Key and value array lengths mismatch.";
        public const string ScopeStackEmpty = "Scope stack is empty.";
        public const string SetEmpty = "Set is empty.";
        public const string MapEmpty = "Map is empty.";
        public const string CollectionFrozen = "Collection is frozen.";
        public const string CollectionAlreadyPermanentlyFrozen = "Collection is already permanently frozen.";
        public const string CollectionNotFrozen = "Collection is not frozen.";
        public const string CollectionReadOnly = "Collection is read-only.";
        public const string CollectionItemsMissing = "The items for this collection are missing.";
        public const string MapKeysMissing = "The keys for this map are missing.";
        public const string MapValuesMissing = "The values for this map are missing.";
        public const string CountAndItemsArrayLengthMismatch = "Count and items array length mismatch.";
        public const string CountAndEntriesArrayLengthMismatch = "Count and entries array length mismatch.";
        public const string CountAndKeysArrayLengthMismatch = "Count and keys array length mismatch.";
        public const string CountAndValuesArrayLengthMismatch = "Count and values array length mismatch.";
        public const string BooleanVectorLengthsMismatch = "Boolean vector lengths mismatch.";
        public const string BooleanMatrixRowsMismatch = "Boolean matrix rows mismatch.";
        public const string BooleanMatrixColumnsMismatch = "Boolean matrix columns mismatch.";
        public const string BooleanMatrixNotSquare = "Boolean matrix is not square.";
        public const string BinaryRelationNodeCountsMismatch = "Binary relation node counts mismatch.";
        public const string MatrixRowsAndNodeCountMismatch = "Boolean matrix rows and binary relation node count mismatch.";
        public const string SetCountAndNodeCountMismatch = "Set count and binary relation node count mismatch.";
        public const string LinkedListNodeAttached = "The LinkedList node already belongs to a LinkedList.";
        public const string LinkedListNodeExternal = "The LinkedList node does not belong to current LinkedList.";
        public const string BinarySearchTreeNodeAttached = "The BinarySearchTree node already belongs to a BinarySearchTree.";
        public const string BinarySearchTreeNodeExternal = "The BinarySearchTree node does not belong to current BinarySearchTree.";
        public const string RedBlackTreeNodeAttached = "The RedBlackTree node already belongs to a RedBlackTree.";
        public const string RedBlackTreeNodeExternal = "The RedBlackTree node does not belong to current RedBlackTree.";
        public const string HashtableEntryAttached = "The Hashtable entry already belongs to a Hashtable.";
        public const string HashtableEntryDetached = "The Hashtable entry does not belong to a Hashtable.";
        public const string HashtableEntryExternal = "The Hashtable entry does not belong to current Hashtable.";
        public const string ImmutableListOpUnsupported = "Immutable list does not support this operation.";
        public const string ImmutableSetOpUnsupported = "Immutable set does not support this operation.";
        public const string ImmutableMapOpUnsupported = "Immutable map does not support this operation.";
        public const string IntHashSetAddSentinelUnsupported = "IntHashSet does not support adding sentinels.";
        public const string IntHashSetRemoveSentinelUnsupported = "IntHashSet does not support removing sentinels.";
        public const string IntDictionaryAddSentinelUnsupported = "IntDictionary does not support adding sentinels.";
        public const string IntDictionaryRemoveSentinelUnsupported = "IntDictionary does not support removing sentinels.";
        public const string GrammarSubmoduleNotFound = "Grammar submodule \"{0}\" is not found.";
        public const string GrammarNoFilePathCanNotExpand = "Can not expand, as the grammar has no valid file path associated.";
        public const string GrammarFileNameNotDottedNameCanNotSynthesize = "Grammar file name {0} is not a dotted name; can not synthesize grammar name.";

        public const string TokenDefined = "Token {0} has been defined.";
        public const string TokenNotDefined = "Token {0} is not defined.";
        public const string AutoTokenSpecified = "'%autotoken' has been specified.";
        public const string IndentedSpecified = "'%indented' has been specified.";
        public const string TooManyEndMarkers = "Only one end marker can be specified.";
        public const string NoneReservedForAutoEndMarker = "Token 'None' is reserved for auto-defined end marker.";
        public const string TokenReservedForIndentedTokenizer = "Token '{0}' is reserved for indented tokenizer.";
        public const string CanNotRefEndMarkerInGrammarText = "Can not reference end marker in grammar text.";
        public const string NonterminalTypeSpecified = "Type of nonterminal {0} has been specified.";
        public const string NonterminalDefinedAsTerminal = "Symbol {0} has been defined as terminal.";
        public const string AutoTypeSpecified = "'%autotype' has been specified.";
        public const string UndefinedSymbolsDetected = "Undefined grammar symbols detected.";
        public const string GrammarSymbolNotDefined = "Grammar symbol {0} is not defined.";
        public const string NonterminalDeclaredAsGoal = "Nonterminal {0} has been declared as goal.";
        public const string TerminalTableFrozen = "Terminal table has been frozen; can not define {0} automatically.";

        public const string GrammarOptionDefined = "Grammar option {0} has been defined.";
        public const string GrammarOptionNotDefined = "Grammar option {0} is not defined.";
        public const string GrammarOptionNotBoolean = "Grammar option {0} has non-boolean value.";
        public const string GrammarOptionNotString = "Grammar option {0} has non-string value.";
        public const string GrammarOptionNotName = "Grammar option {0} has non-name value.";
        public const string GrammarOptionNotSymbol = "Grammar option {0} has non-symbol value.";
        public const string GrammarOptionNotSymbolOrString = "Grammar option {0} has non-symbol or non-string value.";

        public const string NamedTokenDefined = "Named token {0} has been defined.";
        public const string NamedTokenNotDefined = "Named token {0} is not defined.";
        public const string LiteralTokenNameSpecified = "Name of literal token {0} has been specified.";
        public const string LiteralTokenDefined = "Literal token {0} has been defined.";
        public const string LiteralTokenNotDefined = "Literal token {0} is not defined.";
        public const string OpPrecedenceSpecified = "Operator precedence info of token {0} has been specified.";
        public const string ShiftReduceResolutionSpecified = "Shift-reduce conflict resolution info of token {0} has been specified.";
        public const string LR1ConflictsDetected = "LR(1) shift-reduce or reduce-reduce conflicts detected.";
        public const string ShiftReduceAutomatonTypeInvalid = "Shift reduce automaton type must be one of: LALR, IELR, PSLR, LR.";
        public const string MoreThanOneOperatorDetected = "More than one operator detected in production.";
        public const string LexicalPrecedenceDefined = "Lexical precedence {0} has been defined.";
        public const string SameOperandsInLexicalPrecedence = "Same operands in lexical precedence {0}.";
        public const string ReverseLexicalPrecedenceDefined = "Reverse lexical precedence {0} has been defined for {1}.";
        public const string LexicalRuleYieldNoToken = "Lexical rule does not yield a token.";
        public const string DefaultReductionNotImplemented = "Default reduction is not implemented.";
        public const string PSLRNotImplemented = "PSLR shift reduce automaton is not implemented.";
        public const string PSLRCanNotUseExtraStarts = "PSLR can not use extra scanner starts.";
        public const string PSLRCanNotUseBOLNorEOLOps = "PSLR can not use '^' nor '$' operators.";
        public const string PSLRMustYieldTokens = "PSLR must yield tokens.";
        public const string StartDefined = "Start {0} has been defined.";
        public const string StartNotDefined = "Start {0} is not defined.";
        public const string NamedNonterminalDefined = "Named nonterminal {0} has been defined.";
        public const string NamedNonterminalNotDefined = "Named nonterminal {0} is not defined.";
        public const string StartNonterminalDefined = "Start nonterminal {0} has been defined.";
        public const string UnnamedNonterminalDefined = "Unnamed nonterminal {0} has been defined.";
        public const string GoalDefined = "Goal {0} has been defined.";
        public const string GoalNotDefined = "Goal {0} is not defined.";
        public const string ExceptionDefined = "Exception {0} has been defined.";
        public const string ExceptionNotDefined = "Exception {0} is not defined.";
        public const string LexicalAliasDefined = "Lexical alias {0} has been defined.";
        public const string LexicalAliasNotDefined = "Lexical alias {0} is not defined.";
        public const string LexicalAliasRecursive = "Lexical alias {0} is recursive.";
        public const string FailToGetGrammarFilePath = "Fail to get grammar file path.";
        public const string FailToGetGrammarLoggingFilePath = "Fail to get grammar logging file path.";
        public const string CharSetInvalid = "Character set must be one of: ascii, char8, char16, char32.";
        public const string TerminalNotOperator = "Terminal {0} is not an operator.";

        public const string SymbolDefined = "Symbol {0} has been defined in the scope.";
        public const string SymbolNotDefined = "Symbol {0} is not defined in the scope.";
        public const string SymbolNotValue = "Symbol {0} is not a value.";
        public const string SymbolNotType = "Symbol {0} is not a type.";
        public const string FunctionExpectedHere = "Function expected here.";
        public const string TypeParameterAndArgumentCountMismatch = "Type parameter and argument count mismatch; expect {0}, given {1}.";
        public const string FunctionParameterAndArgumentCountMismatch = "Function parameter and argument count mismatch; expect {0}, given {1}.";
        public const string ArgumentMustBeOfTypeOrSubtypeOf = "Argument {0} must be type or subtype of {1}, found {2}.";
        public const string TypeCheckingNotImplemented = "Type checking is not implemented for this kind of expression.";
        public const string IntValueExpected = "Value of type or subtype of int expected, found {0}.";
        public const string BoolValueExpected = "Value of type or subtype of bool expected, found {0}.";
        public const string IntOrBoolValueExpected = "Value of type or subtype of int or bool expected, found {0}.";
        public const string OperandTypesMismatch = "Operand types mismatch: {0} vs {1}.";
        public const string NonterminalNotDefined = "Nonterminal {0} is not defined.";
        public const string RecordAnnotationNodeFail = "Fail to record new annotation node at state {0}.";
        public const string DefaultGoalNotFound = "Default goal is not found.";
        public const string InvalidSymbol = "Invalid symbol.";
        public const string InvalidSymbolList = "Invalid symbol list.";
        public const string PathNotFileOrDir = "Path is not a file nor directory.";

        public const string EndOfInput = "end of input";
        public const string SingleQuote = "single quote";
        public const string DoubleQuote = "double quote";
        public const string BackQuote = "back qoute";
        public const string CharClass = "character class";

        public const string ExpectCharFound = "Expect character {0}, found {1}.";
        public const string ExpectCharOrCharFound = "Expect character {0} or {1}, found {2}.";
        public const string ExpectBinaryDigitFound = "Expect binary digit, found {0}.";
        public const string ExpectOctalDigitFound = "Expect octal digit, found {0}.";
        public const string ExpectDecimalDigitFound = "Expect decimal digit, found {0}.";
        public const string ExpectHexadecimalDigitFound = "Expect hexadecimal digit, found {0}.";
        public const string ExpectAsciiLetterOrUnderscoreFound = "Expect ASCII letter or '_', found {0}.";
        public const string ExpectFound = "Expect {0}, found {1}.";
        public const string ExpectListFound = "Expect list, found {0}.";
        public const string ExpectProcedureFound = "Expect procedure, found {0}.";
        public const string ExpectKeywordFound = "Expect keyword '{0}', found {1}.";
        public const string ExpectEndOfInputFound = "Expect end of input, found {0}.";
        public const string ExpectNameOrContextualKeywordFound = "Expect name or contextual keyword, found {0}.";
        public const string ExpectTrueOrFalseFound = "Expect keyword True or False, found {0}.";
        public const string ExpectTypeExpression = "Expect type expression, found {0}.";
        public const string ExpectColonOrEqualFound = "Expect ':' or '=', found {0}.";
        public const string ExpectLeftParenOrCurlyFound = "Expect '(' or '{{', found {0}.";
        public const string UnterminatedLiteral = "Unterminated {0} literal.";
        public const string UnterminatedStringLiteral = "Unterminated string literal.";
        public const string UnterminatedVerbatimStringLiteral = "Unterminated verbatim string literal.";
        public const string UnterminatedVerbatimIdentifier = "Unterminated verbatim identifier.";
        public const string UnterminatedByteStringLiteral = "Unterminated byte string literal.";
        public const string UnterminatedCharLiteral = "Unterminated character literal.";
        public const string UnterminatedByteLiteral = "Unterminated byte literal.";
        public const string InvalidEscapeSequence = "Invalid escape sequence.";
        public const string CharLiteralEmpty = "Character literal can not be empty.";
        public const string CharLiteralManyChars = "Character literal can not contain multiple characters.";
        public const string ByteLiteralEmpty = "Byte literal can not be empty.";
        public const string ByteLiteralManyChars = "Byte literal can not contain multiple bytes.";
        public const string DollarStringNotImplemented = "$-string is not implemented yet.";
        public const string IntegerLiteralValueTooHugeToFit = "Integer literal is too huge to fit into native int.";
        public const string FloatLiteralValueTooHuge = "Float literal value is too huge.";
        public const string NotSignedNumericType = "Not a signed numeric type.";
        public const string ValueMustBeOfType = "Value must be of type {0}.";
        public const string DecoratorDefinedMoreThanOnce = "Decorator {0} is defined more than once.";
        public const string DecoratorNotDefined = "Decorator {0} is not defined.";
        public const string DecoratorNotSingleValued = "Decorator {0} must have a single positional argument.";
        public const string CanNotDetermineRootNamespace = "Can not determine {0} via directives and decorators.";
        public const string PredefinedTypeCanNotBeUsedAlone = "Predefined type can not be used alone.";
        public const string BaseCanNotBeUsedAlone = "'base' can not be used alone.";
        public const string CanNotTranslateJoinedString = "Can not translate joined string.";
        public const string CanNotTranslateFormattedValue = "Can not translate formatted value.";
        public const string CanNotTranslateUnpackingArgument = "Can not translate unpacking argument.";
        public const string CanNotTranslateKeywordUnpackingArgument = "Can not translate keyword unpacking argument.";
        public const string CanNotTranslateEllipsis = "Can not translate '...'.";
        public const string CanNotTranslateEmptyList = "Can not translate '[]'.";
        public const string CanNotTranslateEmptySet = "Can not translate '{}'.";
        public const string CanNotTranslateEmptyMap = "Can not translate '{:}'.";
        public const string CanNotTranslateEmptyMutableList = "Can not translate '[]!'.";
        public const string CanNotTranslateEmptyMutableSet = "Can not translate '{}!'.";
        public const string CanNotTranslateEmptyMutableMap = "Can not translate '{:}!'.";
        public const string CanNotTranslateValueRecord = "Can not translate value record.";
        public const string CanNotTranslateMatrixMultiply = "Can not translate '... @ ...'.";
        public const string CanNotTranslateMatrixMultiplyAssign = "Can not translate '... @= ...'.";
        public const string CanNotTranslateYieldFrom = "Can not translate 'yield from ...'.";
        public const string CanNotTranslateYield = "Can not translate 'yield ...'.";
        public const string CanNotTranslateYieldBreak = "Can not translate 'yield break'.";
        public const string CanNotTranslateGlobal = "Can not translate 'global ...'.";
        public const string CanNotTranslateNonlocal = "Can not translate 'nonlocal ...'.";
        public const string CanNotTranslateImport = "Can not translate 'import ...'.";
        public const string CanNotTranslateFromImport = "Can not translate 'from ... import ...'.";
        public const string CanNotTranslateFromImportAll = "Can not translate 'from ... import *'.";
        public const string CanNotTranslateComplexSubscripts = "Can not translate complex subscripts.";
        public const string CanNotTranslateAnnotatedAssignWithComplexTargets = "Can not translate annotated assign with complex targets.";
        public const string CanNotTranslateWithStatementWithComplexTargets = "Can not translate 'with' statement with complex targets.";
        public const string CanNotTranslateForStatementWithComplexTargets = "Can not translate 'for' statement with complex targets.";
        public const string CanNotTranslateComprehensionWithComplexEnumerators = "Can not translate comprehension with complex enumerators.";
        public const string CanNotTranslateAsyncWithStatement = "Can not translate 'async with ...' statement.";
        public const string CanNotTranslateAsyncForStatement = "Can not translate 'async for ...' statement.";
        public const string CanNotTranslateAsyncComprehension = "Can not translate async comprehension.";
        public const string CanNotTranslateForElse = "Can not translate 'for ... else ...'.";
        public const string CanNotTranslateWhileElse = "Can not translate 'while ... else ...'.";
        public const string CanNotTranslateTryElse = "Can not translate 'try ... else ...'.";
        public const string CanNotTranslateUnpack = "Can not translate unpack.";
        public const string CanNotTranslateRecordType = "Can not translate record type.";
        public const string CanNotTranslateValueRecordType = "Can not translate value record type.";
        public const string CanNotTranslateUnionType = "Can not translate union type.";
        public const string CanNotBeTranslatedAsAnonymousFunctionSignature = "Can not be translated as anonymous function signature.";
        public const string CanNotBeTranslatedAsFormalParameterList = "Can not be translated as formal parameter list.";
        public const string TooManyArgumentTypes = "Too many argument types; at most 16 are supported.";
        public const string CanNotBeTranslatedAsTypeName = "Can not be translated as type name.";
        public const string CanNotBeTranslatedAsUnboundTypeName = "Can not be translated as unbound type name.";
        public const string CanNotBeTranslatedAsNamedEntity = "Can not be translated as named entity.";
        public const string CanNotBeTranslatedAsNamedEntityTarget = "Can not be translated as named entity target.";
        public const string CanNotBeTranslatedAsExpression = "Can not be translated as expression.";
        public const string TypeArgumentsAppliedToWrongOperand = "Type arguments applied to wrong operand.";
        public const string GenericDimensionSpecifierAppliedToWrongOperand = "Generic dimension specifier applied to wrong operand.";
        public const string VirtualOrAbstractMemberNotAllowedInStruct = "The virtual or abstract member is not allowed in struct.";
        public const string CurrentClassOrStructNotAvailableCanNotTranslateConstructor = "Can not translate constructor as the current class or struct is not available.";
        public const string CurrentClassOrStructNotAvailableCanNotTranslateStaticConstructor = "Can not translate static constructor as the current class or struct is not available.";
        public const string DestructorsNotAllowedInStructCanNotConvertDestructorMember = "Can not convert the destructor member as destructors are not allowed in struct.";
        public const string InvalidClassMemberDeclaration = "Invalid class member declaration.";
        public const string InvalidEmptyIdentifier = "Invalid empty identifier.";
        public const string CurrentProductionNotAvailableCanNotTranslateSlotValueReference = "Can not translate slot value reference as the current production is not available.";
        public const string CurrentProductionNotAvailableCanNotTranslateSlotContextReference = "Can not translate slot context reference as the current production is not available.";
        public const string CurrentProductionNotAvailableCanNotTranslateResultValueReference = "Can not translate result value reference as the current production is not available.";
        public const string CurrentProductionNotAvailableCanNotTranslateResultContextReference = "Can not translate result context reference as the current production is not available.";
        public const string TargetExpressionCanNotBeTranslateAsUnaryCSharpExpression = "Target expression can not be translated as unary C# expression.";

        public const string MismatchUnindent = "Unindent does not match any outer indentation level.";
        public const string InconsistentTabSpace = "Inconsistent use of tabs and spaces in indenation.";
        public const string InvalidLineContinuation = "Unexpected character after line continuation character.";
        public const string InvalidConversionCode = "Conversion code must be one of 's', 'r' and 'a'.";
        public const string InvalidBinaryIntLiteral = "Invalid binary integer literal.";
        public const string InvalidOctalIntLiteral = "Invalid octal integer literal.";
        public const string InvalidDecimalIntLiteral = "Invalid decimal integer literal.";
        public const string InvalidHexadecimalIntLiteral = "Invalid hexadecimal integer literal.";
        public const string InvalidFloatLiteral = "Invalid floating-point literal.";
        public const string InvalidToken = "Invalid token.";
        public const string ItemNotInItemSet = "The shift reduce item is not in this item set.";
        public const string NoTransitionsDefinedForState = "No transitions are defined for state {0}.";
        public const string NoTransitionDefinedForStateAndSymbol = "No transition is defined for state {0} and symbol {1}.";
        public const string NoPredecessorsDefinedForState = "No predecessors are defined for state {0}.";
        public const string NoActionsDefinedForState = "No actioins are defined for state {0}.";
        public const string NoActionDefinedForStateAndSymbol = "No action is defined for state {0} and symbol {1}.";
        public const string NoShiftDefinedForStateAndSymbol = "No shift is defined for state {0} and symbol {1}.";
        public const string NoGotosDefinedForState = "No gotos are defined for state {0}.";
        public const string NoGotoDefinedForStateAndSymbol = "No goto is defined for state {0} and symbol {1}.";
        public const string NoReductionDefinedForStateAndProduction = "No reduction is defined for state {0} and production {1}.";
        public const string NoLookaheadSetsDefinedForState = "No lookahead sets are defined for state {0}.";
        public const string NoLookaheadSetDefinedForStateAndItem = "No lookahead set is defined for state {0} and item {1}.";
        public const string ShiftContributionSpecified = "Shift contribution has been specified for state {0} and symbol {1}.";

        public const string InvalidBuiltinTypeCode = "Invalid builtin type code.";
        public const string InvalidNamedConstant = "Invalid named constant.";
        public const string InvalidUnaryOp = "Invalid unary operator.";
        public const string InvalidBinaryOp = "Invalid binary operator.";
        public const string InvalidRelationalOp = "Invalid relational operator.";
        public const string InvalidBooleanOp = "Invalid boolean operator.";
        public const string InvalidTypeDeclaratorCategory = "Invalid type declarator category.";
        public const string InvalidTypeExpressionCategory = "Invalid type expression category.";
        public const string InvalidTokenDeclarationKind = "Invalid token declaration kind.";
        public const string InvalidOperatorDeclarationKind = "Invalid operator declaration kind.";
        public const string InvalidLexicalPrecedenceOperator = "Invalid lexical precedence operator.";
        public const string InvalidClassMemberAccessibility = "Invalid class member accessibility.";
        public const string InvalidClassMemberVirtualModifier = "Invalid class member virtual modifier.";
        public const string InvalidClassVirtualModifier = "Invalid class virtual modifier.";

        public const string CSharpHasNoPowerOperator = "C# has no power operator '**'.";
        public const string CSharpHasNoMatrixMultiplyOperator = "C# has no matrix multiply operator '@'.";
        public const string CSharpHasNoFloorDivideOperator = "C# has no floor divide operator '//'.";
        public const string CSharpHasNoIsOperator = "C# has no 'is' operator.";
        public const string CSharpHasNoIsNotOperator = "C# has no 'is not' operator.";
        public const string CSharpHasNoInOperator = "C# has no 'in' operator.";
        public const string CSharpHasNoNotInOperator = "C# has no 'not in' operator.";
        public const string CSharpHasNoRangeSlice = "C# has no range slice.";
        public const string CSharpHasNoEllipsis = "C# has no ellipsis '...'.";
        public const string CSharpHasNoFString = "C# has no f-string.";
        public const string CSharpHasNoEmptyTuple = "C# has no empty tuple '()'.";
        public const string CSharpHasNoListLiteral = "C# has no list literal.";
        public const string CSharpHasNoSetLiteral = "C# has no set literal.";
        public const string CSharpHasNoDictLiteral = "C# has no dict literal.";
        public const string CSharpHasNoComprehension = "C# has no comprehension.";
        public const string CSharpHasNoGenerator = "C# has no generator.";
        public const string CSharpHasNoListComprehension = "C# has no list comprehension.";
        public const string CSharpHasNoSetComprehension = "C# has no set comprehension.";
        public const string CSharpHasNoDictComprehension = "C# has no dict comprehension.";
        public const string CSharpHasNoYieldExpression = "C# has no 'yield' expression.";
        public const string CSharpHasNoYieldFromExpression = "C# has no 'yield from' expression.";
        public const string CSharpHasNoStarredOperator = "C# has no starred operator '*'.";
        public const string CSharpHasNoWildcardKeywordArguments = "C# has no wildcard keyword arguments '**'.";
        public const string CSharpHasNoWildcardPositionalParameters = "C# has no wildcard positional parameters '*'.";
        public const string CSharpHasNoWildcardKeywordParameters = "C# has no wildcard keyword parameters '**'.";
        public const string CSharpHasNoKeywordParameters = "C# has no keyword parameters.";
        public const string CSharpHasNoThrowFromStatement = "C# has no 'throw' ... 'from' statement.";
        public const string CSharpHasNoDeleteStatement = "C# has no 'del' statement.";
        public const string CSharpHasNoGlobalStatement = "C# has no 'global' statement.";
        public const string CSharpHasNoNonlocalStatement = "C# has no 'nonlocal' statement.";
        public const string CSharpHasNoRelativeFromImportStatement = "C# has no 'from' ... 'import' statement.";
        public const string CSharpHasNoComplexAnnotatedAssignmentStatement = "C# has no complex annotated assignment statement.";
        public const string CSharpHasNoMatrixMultiplyOp = "C# has no matrix multiply operator '@'.";
        public const string CSharpHasNoMatrixMultiplyAssignOp = "C# has no matrix multiply assignment operator '@='.";
        public const string CSharpHasNoAsyncWithStatement = "C# has no 'async with' statement.";
        public const string CSharpHasNoAsyncForStatement = "C# has no 'async for' statement.";
        public const string CSharpHasNoAsyncForComprehension = "C# has no 'async for' comprehension.";
        public const string CSharpWithNotSimpleName = "C# 'with' statement must bind a simple name.";
        public const string CSharpForNotSimpleName = "C# 'for' statement must bind a simple name.";
        public const string CSharpHasNoForElseStatement = "C# has no 'for' ... 'else' statement.";
        public const string CSharpHasNoWhileElseStatement = "C# has no 'while' ... 'else' statement.";
        public const string CSharpHasNoTryCatchElseStatement = "C# has no 'try' ... 'catch' ... 'else' statement.";
        public const string CSharpYieldMustReturnValue = "C# 'yield' must return a value.";
        public const string CSharpHasNoSequenceUnpackingOp = "C# has no sequence unpacking operator '*'.";

        public const string CSharpHasNoClassKeywordArguments = "C# has no class keyword arguments.";
        public const string InvalidSemanticActionContext = "Expression is only valid in production action.";
        public const string SlotNumberOutOfRange = "Slot number is out of range.";
        public const string GrammarSymbolHasNoSemanticValue = "Grammar symbol {0} has no semantic value.";

        public const string ParamKeyValueLengthMismatch = "Key and value array lengths of parameter list mismatch.";
        public const string MoreDefaultsThanPositional = "More defaults than positional parameters detected.";
        public const string SetExpressionEmpty = "Set expression can not be empty.";
        public const string DictKeyValueLengthMismatch = "Key and value array lengths of dictionary expression mismatch.";
        public const string ComprehensionsListEmpty = "Comprehensions list can not be empty.";
        public const string OpOperandLengthMismatch = "Operator and operand array lengths of comparison expression mismatch.";
        public const string TwoOrMoreOperandsExpected = "Two or more operands expected.";
        public const string OneOrMoreComparatorsExpected = "One or more comparators expected.";
        public const string ArgumentNotNumberic = "Argument is not numeric.";
        public const string FStringItemConstantMustBeString = "F-string item constant must be string.";
        public const string UnexpectedFStringItemType = "Unexpected f-string item type.";
        public const string UnexpectedConstantType = "Unexpected constant type.";
        public const string UnexpectedToken = "Unexpected {0}.";
        public const string MutableFlagCountMustBeZeroOneOrTwo = "Mutable flag count must be 0, 1 or 2.";
        public const string OptionalFlagCountMustBeZeroOneOrTwo = "Optional flag count must be 0, 1 or 2.";
        public const string MutableAndOptionalFlagsBothSet = "Mutable and optional flags are both set.";
        public const string TokenContextNotAvailable = "Token source context is not available.";

        public const string LiteralTokenMustHaveValueSet = "Literal token must have token set.";
        public const string LiteralTokenMustNotHaveTextSet = "Literal token must not have text set.";
        public const string NamedTokenMustNotHaveValueAndTextBothSet = "Named token must not have value and text both set.";

        public const string RaiseWithCauseButNoException = "Raise with cause but no exception.";
        public const string TryHasNeitherHandlersNorFinally = "Try has neither exception handlers nor finally body.";
        public const string TryHasOrElseButNoHandlers = "Try has orelse but no exception handlers.";
        public const string FromImportLevelInvalid = "from ... import level less than -1.";
        public const string ExpressionCantBeAssignedInUsage = "Expression which can't be assigned to in {0} usage.";
        public const string ExpressionUsageMismatch = "Expression must have {0} usage but has {1} instead.";
        public const string NullPointerNotAllowedInExpressionList = "Null pointer disallowed in expression list.";
        public const string BooleanExpressionOperandsNotEnough = "Boolean expression with less than 2 operands.";
        public const string FunctionHasTooManyDefaults = "Too many positional parameter defaults.";
        public const string FunctionKWDefaultsMismatch = "Keyword only parameter default list length mismatch.";
        public const string FunctionHasTooManyParameters = "More than 255 parameters.";
        public const string CallExpressionHasTooManyArguments = "More than 255 arguments.";
        public const string DictExprKeyValueCountDiffer = "Dictionary expression doesn't have the same number of keys as values.";
        public const string ComprehensionWithNoGenerators = "Comprehension with no generators.";
        public const string ComparisonWithNoComparators = "Comparison expression with no comparators.";
        public const string ComparisonComparatorOperandNumMismatch = "Comparison expression has a different number of comparators and operands.";
        public const string NonNumericTypeInNumberExpr = "Non-numeric type in number expression.";
        public const string StackSlotNumberMustBePositive = "Slot number must be positive.";
        public const string EmptySequenceIn = "Empty {0} in {1}.";
        public const string AnnAssignWithSimpleNonNameTarget = "AnnAssign with simple non-Name target.";
        public const string CanNotDeleteOrAssignTo = "Can not {0} {1}.";
        public const string ExpressionUsageNotSupported = "Expression usage {0} is not supported.";
        public const string AssignToKeyword = "Assignment to keyword.";
        public const string DefaultExceptionHandlerMustBeLast = "Default exception handler must be the last exception handler.";
        public const string TrailingCommaNotAllowedWithoutSurroundingParens = "Trailing comma not allowed without surrounding parentheses.";
        public const string IllegalExprForAugAssign = "Illegal expression for augmented assignment.";
        public const string ArgumentNotValidNumberLiteralValue = "Argument is not valid number literal value.";
        public const string NonDefaultArgFollowDefaultArg = "Non-default argument follows default argument.";
        public const string IterableUnpackingAfterKeywordUnpacking = "Iterable argument unpacking follows keyword argument unpacking.";
        public const string PositionalAfterKeywordUnpacking = "Positional argument follows follows keyword argument unpacking.";
        public const string PositionalAfterKeyword = "Positional argument follows keyword argument.";
        public const string MixStringAndByteArray = "String literal and byte array literal can not be mixed.";
        public const string ListCanNotBeAnnotated = "Only single target (not list) can be annotated.";
        public const string TupleCanNotBeAnnotated = "Only single target (not tuple) can be annotated.";
        public const string IllegalAnnotationTarget = "Illegal target for annotation.";

        public const string LexicalAliasTableFrozen = "Lexical alias table has been frozen.";
        public const string LexicalStartTableFrozen = "Lexical start table has been frozen.";
        public const string LexicalStartDefined = "Lexical start {0} has been defined.";
        public const string LexicalStartUndefined = "Lexical start {0} is undefined.";
        public const string CharSetSpecified = "Character set has been specified.";
        public const string CharSetTypeInvalid = "Character set type must be one of: ascii, char8, char16, char32.";
        public const string DefaultActionSpecifiedMoreThanOnce = "Default action of start {0} is specified more than once.";

        public const string VariableUndefined = "Variable {0} is not defined.";
        public const string CondBranchesExhausted = "'cond' branches exhausted.";
        public const string ArgumentMustNotBeEmptySequence = "Argument '{0}' must not be empty sequence.";
        public const string ValueNotList = "Value of the expression is not a list.";
        public const string ListLengthMismatch = "Name count and list length mismatch.";
        public const string ArgumentCountMismatch = "Argument and parameter count mismatch.";
        public const string DuplicateNamesInBindingList = "Duplicate names detected in binding list.";
        public const string NoOccurrenceViolation = "No occurrence violation.";
        public const string CanNotUnifyFuncWithDifferentArgCount = "Can not unify functions with different argument count. type1: {0}, type2: {1}";
        public const string CanNotUnifyTypes = "Can not unify types. type1: {0}, type2: {1}";

        public const string IntegerLiteralValueTooHugeToFitIntoInt64 = "Integer literal is too huge to fit into int64.";
        public const string IntegerConstantValueTooHugeToFitIntoInt64 = "Integer constant is too huge to fit into int64_t.";
        public const string IntegerConstantValueTooHugeToFitIntoUInt64 = "Integer constant is too huge to fit into uint64_t.";
        public const string IntegerConstantTypeInvalid = "Integer constant type {0} is invalid.";
        public const string FloatingConstantTypeInvalid = "Floating constant type {0} is invalid.";
        public const string CharacterConstantEmpty = "Character constant can not be empty.";
        public const string CharacterConstantManyChars = "Character constant can not contain multiple characters.";
        public const string UnterminatedCharacterConstant = "Unterminated character constant.";
        public const string ValueMustBeInRangeForUChar = "Value must be in range '\\0' ... '\\U0010FFFF' for U'...' character constant.";
        public const string ValueMustBeInRangeForuChar = "Value must be in range '\\0' ... '\\uFFFF' for u'...' character constant.";
        public const string ValueMustBeInRangeForLChar = "Value must be in range '\\0' ... '\\uFFFF' for L'...' character constant.";
        public const string ValueMustBeInRangeForChar = "Value must be in range '\\0' ... '\\u00FF' for '...' character constant.";

        public const string CharacterLiteralEmpty = "Character literal can not be empty.";
        public const string CharacterLiteralManyChars = "Character literal can not contain multiple characters.";
        public const string UnterminatedCharacterLiteral = "Unterminated character literal.";
        public const string ValueMustBeInRangeForCharacterLiteral = "Value must be in range '\\0' ... '\\uFFFF' for character literal.";
        public const string InvalidOp = "Invalid operator {0}.";
    }
}
